package commonClass.system;

import commonClass.vo.Person;

public class SystemDemo {

	/**
	 * System类是一些与系统相关的属性和方法的集合，并且所有的属性和方法都是静态的
	 * @param args
	 */
	public static void main(String[] args) {
		//getExecTime();
		getPropertiesList();
		//getProperty("java.library.path");
		//getProperty("sun.arch.data.model");
		//objectGc();
	}

	/**
	 * 计算程序执行的时间
	 */
	public static void getExecTime(){
		long startTime=System.currentTimeMillis();
		int sum=0;
		for(int i=0;i<30000000;i++){
			sum+=i;
		}
		long endTime=System.currentTimeMillis();
		
		System.out.println("计算所花费的时间:"+(endTime-startTime)+"毫秒");
	}
	
	/**
	 * 列出系统的全部属性
	 */
	public static void getPropertiesList(){
		System.getProperties().list(System.out);
	}
	
	/**
	 * 得到属性的值
	 * @param propertyName
	 */
	public static void getProperty(String propertyName){
		System.out.println(System.getProperty(propertyName));
	}
	
	/**
	 * 释放对象
	 * System.gc()是对Runtime中gc()方法的封装
	 * 一个对象如果不再被任何栈内存所使用，那么此对象就可以称为垃圾对象，等待被回收，实际上等待的时间是不确定的,
	 * 所以可以直接调用System.gc()进行垃圾回收
	 */
	public static void objectGc(){
		Person per=new Person("赵辉",24);
		per=null;		//断开引用，释放空间
		System.gc();	//强制性释放空间
	}
}
